package team.hyznrj.studentsys.service;

import team.hyznrj.studentsys.dto.CourseDto;
import team.hyznrj.studentsys.entity.CourseAchievement;
import team.hyznrj.studentsys.form.CourseAchievementForm;
import team.hyznrj.studentsys.form.CourseConditionalForm;

import java.util.List;

public interface CourseAchievementService {

    /**
     * 根据用户要求查询数据,并进行数据拼装(支持多条件,多学号查询)
     *  studentId 例如(1000,1001) 多个之间用逗号相互隔开
     *  studentIds 直接打入学号List
     * @param courseConditionalForm 查询条件
     * @return 拼装后的数据
     */
    List<CourseDto> findByConditional(CourseConditionalForm courseConditionalForm);

    /**
     * 对属性为<spon>物理数据</spon>所使用的 更新和 插入
     *
     * @param courseAchievementForm excel操作类
     * @return boolean
     */

    int insertOrUpdateCourseAchievement(List<CourseAchievementForm> courseAchievementForm);

    /**
     * 对部分属性为<spon>标志数据</spon>表标志数据所使用的 更新和 插入
     *
     * 更新/合法性判断存在问题 , 暂时弃用
     *
     * @param courseAchievement 业务层交互类
     * @return boolean
     */
    boolean insertOrUpdateCourseAchievement(CourseAchievement courseAchievement);

    /**
     * 根据Id删除成绩
     * @param ids 成绩表id
     * @return boolean
     */
    boolean deleteCourseAchievement(List<String> ids);

    /**
     *  根据学号删除成绩
     * @param studentIds 学号Ids
     * @return boolean
     */
    int deleteCourseAchievementByStudentId (List<String> studentIds);


}
